import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
// 导入全局样式
import './assets/css/global.css'
// 导入字体图标
import './assets/fonts/iconfont.css'
// 导入 NProgress 包对应的JS和CSS
// import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
// 导入axios
import axios from 'axios'

import JSONBig from 'json-bigint'// 解决超过 16 位数字精度丢失问题

// 配置request拦截器中, 展示进度条 NProgress.start()
axios.interceptors.request.use(config => {
  // NProgress.start()
  // console.log(config)
  // 在header中设置Authorization的值为token
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 在最后必须 return config
  return config
})

Vue.prototype.$http = axios
// 配置请求的根路径
axios.defaults.baseURL = '/api'
axios.defaults.transformResponse = [
  // 解决超过 16 位数字精度丢失问题
  // 在返回参数接收前进行处理
  function (data) {
    // data就是接口返回的原始数据
    return JSONBig.parse(data)
  }
]

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
